package com.codeyang.mocktest2.mockit;

import com.codeyang.mocktest2.controller.DemoAction;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mockito;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;

/**
 * 18 @MockBean
 */
@RunWith(SpringRunner.class)
@SpringBootTest
public class MockBean01 {

    /**
     * 项目启动时排除掉的bean
     * 替换为Mockit操作的Bean
     * 是集成在Spring容器中的 @Mock 用来替换Bean对象
     * @MockBean 只能 mock 本地的代码——或者说是自己写的代码，对于储存在库中而且又是以 Bean 的形式装配到代码中的类无能为力。
     */
    @MockBean
    private DemoAction demoAction;

    @Test
    public void testGetUserName() throws Exception {
        Mockito.when(demoAction.getUserName("1")).thenReturn("李四");
        System.out.println(demoAction.getUserName("1"));
    }

}